package cn.codeinn.common.annotations;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import cn.codeinn.common.enums.Scope;

@Target({ ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
public @interface Permission {
	/**
	 * 作用区域
	 */
	Scope scope() default Scope.USER;

	/**
	 * 权限类型
	 */
	String type();

	/**
	 * 默认的缓存对象
	 */
	String authName() default "authCache";

	/**
	 * 权限的字段，默认 “id”
	 */
	String field() default "id";

	/**
	 * 过滤条件（SPEL语法），例：“#scores.[#this].id > 10”
	 *
	 */
	String filter() default "";
}

